package com.winshare.saleAssistant.mapper;

import com.winshare.saleAssistant.domain.entity.ProductCategoryDO;
import com.winshare.saleAssistant.domain.query.ProductCategoryQuery;
import com.winshare.saleAssistant.domain.dto.req.*;
import com.winshare.saleAssistant.domain.dto.resp.ProductCategoryRespDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface ProductCategoryMapStruct {

    ProductCategoryMapStruct INSTANCE = Mappers.getMapper(ProductCategoryMapStruct.class);

    ProductCategoryDO fromProductCategoryCreateDTO(ProductCategoryCreateDTO productCategoryCreateDTO);

    ProductCategoryDO fromProductCategoryUpdateDTO(ProductCategoryUpdateDTO productCategoryUpdateDTO);

    ProductCategoryDO fromProductCategoryIdDTO(ProductCategoryIdDTO productCategoryIdDTO);

    ProductCategoryQuery fromProductCategoryQueryDTO(ProductCategoryQueryDTO productCategoryQueryDTO);

    ProductCategoryDO fromProductCategoryMoveDTO(ProductCategorySortDTO productCategoryMoveDTO);

    ProductCategoryRespDTO fromProductCategoryDO(ProductCategoryDO productCategoryDO);

    List<ProductCategoryRespDTO> fromProductCategoryDOList(List<ProductCategoryDO> productCategoryDOList);

    ProductCategoryDO fromBaseIdDTO(BaseIdDTO baseIdDTO);

}
